from faster_whisper import WhisperModel
import os

os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'

# 全局变量存储模型实例
_MODEL = None  # 必须在这里初始化全局变量


def init_model():
    # 自动初始化模型（如果未初始化）
    global _MODEL  # 声明要修改全局变量
    if _MODEL is None:  # 检查是否已初始化
        print("Initializing Whisper model...")
        _MODEL = WhisperModel("small", device="cpu", compute_type="int8")


def transcription(audio_data, language_type):
    """
    faster_whisper 语音识别
    功能：自动初始化模型（如果未初始化），然后进行语音转写
    """
    init_model()
    recognized_text = ""
    segments, info = _MODEL.transcribe(audio_data, beam_size=5, language=language_type)
    # 识别结果
    for segment in segments:
        recognized_text += segment.text + " "
    return recognized_text